import requests
from bs4 import BeautifulSoup
from tqdm import tqdm
import re
from numpy import unicode
import json


server = 'https://mp.weixin.qq.com/mp/homepage?__biz=MjM5OTMxNDk2MQ==&hid=7' 
r = requests.get(url=server)
bs = BeautifulSoup(r.text,'lxml')
tab_bd = bs.find('div',class_='tab_bd')
# print(tab_bd)
# print(r.text)
# .select()参数是css选择器
# scripts = bs.select('script:not([type]):not([nonce])')
# 找到目标标签
script = bs.find('script',string=re.compile('data={"appmsg_list"'))
# 提取数据字符串
dataStr = re.findall('var data=(.*)', unicode(script.string))
# 转成字典
data = json.loads(dataStr[0][:-1])
# 遍历打印
for k,v in data.items():
    if len(v):
       for vv in v:
            print('----',vv)
    else:
        print('--'+k,v)
# 分页获取更多内容
postUrl = 'https://mp.weixin.qq.com/mp/homepage?__biz=MjM5OTMxNDk2MQ==&hid=7&cid=0&begin=6&count=5&action=appmsg_list&f=json&r=0.25060550686466665&appmsg_token='
r = requests.post(url=postUrl)
newData = json.loads(r.text)['appmsg_list']
# 合并数据
data['cate_list'][0]['appmsg_list'].extend(newData)

# 写入到文件
with open('./data.json','w') as f:
    f.write(json.dumps(data,ensure_ascii=False))
    

# 需准备
# 1，获取到包含数据的<script>
# 2, 通过正则表达式从中获取data内容，
# 3，并用json.loads()获取目标数据对象
# 4，解析滑动请求，获得更多数据
# 5，解析后和第3步结果拼接
# 6，遍历数据，组装本地JSON，写入到文件
# 7，更多：模拟点击其他选项卡，再执行步骤4、6
